#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Miguel Silva, 6311
Estrutura de Dados e Algoritmos
Engenharia Informática 
2012/2013
"""

class InsertionsortClass(object):
	"""
	Classe utilizada para representação do algoritmo de 
	ordenação Insertion sort.
	"""

	def __init__(self):
		"""
		Constructor da classe InsertionsortClass.
		"""
		super(InsertionsortClass, self).__init__()

	def insertionSort(self, list):
		"""
		Função que executa o algoritmo insertion sort, procedendo à ordenação da lista
		enviada por parâmetro.

		Argumentos:
		list -- lista a ser ordenada
		"""
		
		for j in xrange(0, len(list)):
			key = list[j]
			i = j - 1
			while i >= 0 and list[i] > key:
				list[i+1] = list[i]
				i = i - 1
			list[i+1] = key